package com.chenyuhan.myview.viewpager.clipViewPager;

import android.support.v4.view.ViewPager;
import android.view.View;

/**
 * Created by ChenYuHan on 17/9/6
 * 设定左右item向中间偏移0.475个page宽度，同时大小缩小为前一个page的0.9
 * 同时设置y轴下偏，让中间的view显示在中间
 */
public class ScalePageTransformer implements ViewPager.PageTransformer {


    /**
     * 核心就是实现transformPage(View page, float position)这个方法
     **/
    @Override
    public void transformPage(View page, float position) {
        //设置每个卡片x方向偏移量宽度的1／3，左边position为负，所以向右，右边相反
        page.setTranslationX(-page.getWidth() * 0.475f * position);
        //设置缩放的比例 这里设置两个相邻的卡片的缩放比率0.9f
        page.setScaleX((float) Math.pow(0.9, position > 0 ? position : -position));
        page.setScaleY((float) Math.pow(0.9, position > 0 ? position : -position));
        //设置page在Z轴的偏移量，以保证中心区域在最上层
        page.setTranslationZ(position > 0 ? -position : position);
    }
}
